#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
检查管理员账号状态
"""

import os
import sys
import django

# 设置Django环境
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TradingPlatform_Server.settings')
django.setup()

from Server.models import User

def check_admin_account():
    """检查管理员账号"""
    print("=" * 60)
    print("管理员账号检查")
    print("=" * 60)
    
    admin_phone = '13800138000'
    
    try:
        admin = User.objects.get(phone=admin_phone)
        print(f"\n✓ 找到管理员账号:")
        print(f"  - ID: {admin.id}")
        print(f"  - 用户名: {admin.username}")
        print(f"  - 手机号: {admin.phone}")
        print(f"  - 是否管理员: {admin.is_admin}")
        print(f"  - 密码(加密): {admin.password[:20]}...")
        
        # 检查密码
        print("\n正在验证密码 'admin123'...")
        from django.contrib.auth.hashers import check_password
        
        if check_password('admin123', admin.password):
            print("✓ 密码验证成功！")
        else:
            print("✗ 密码验证失败！")
            print("  正在重置密码为 'admin123'...")
            from django.contrib.auth.hashers import make_password
            admin.password = make_password('admin123')
            admin.save()
            print("✓ 密码已重置")
        
        # 确保是管理员
        if not admin.is_admin:
            print("\n警告：该用户不是管理员，正在设置为管理员...")
            admin.is_admin = True
            admin.save()
            print("✓ 已设置为管理员")
        
        print("\n" + "=" * 60)
        print("检查完成！管理员账号状态正常")
        print("=" * 60)
        print("\n登录信息:")
        print(f"  手机号: {admin_phone}")
        print(f"  密码: admin123")
        
    except User.DoesNotExist:
        print(f"\n✗ 未找到手机号为 {admin_phone} 的用户")
        print("\n正在创建管理员账号...")
        
        from django.contrib.auth.hashers import make_password
        
        admin = User.objects.create(
            id='admin001',
            username='系统管理员',
            phone=admin_phone,
            password=make_password('admin123'),
            is_admin=True,
            balance=0.0
        )
        
        print("✓ 管理员账号创建成功！")
        print(f"  - ID: {admin.id}")
        print(f"  - 用户名: {admin.username}")
        print(f"  - 手机号: {admin.phone}")
        print(f"  - 密码: admin123")
        print(f"  - 是否管理员: {admin.is_admin}")
    
    except Exception as e:
        print(f"\n✗ 发生错误: {str(e)}")
        import traceback
        traceback.print_exc()

if __name__ == '__main__':
    check_admin_account()
    input("\n按回车键退出...")

